import { useCookies } from "@vueuse/integrations/useCookies";
import axios from "axios"
import { ElMessage } from 'element-plus'
import Cookies from "universal-cookie";

const http = axios.create({
    //baseURL:请求的基本路径,将在每一次请求的url前面自动加，除非 url 是一个绝对 URL
    baseURL: 'http://localhost:8080/',
    //timeout 指定请求超时的毫秒数,如果请求时间超过 timeout 的值，则请求会被中断
    timeout: 3000
})

// 添加请求拦截器
http.interceptors.request.use(function (config) {
    // 在发送请求之前做些什么，在请求头中添加token。保证每次请求携带token
    //1.从Cookie中获取token
    const cookie = useCookies();
    //2.将token添加到请求头中，进行携带到后端
    if(cookie.get("token")){
      config.headers.set("token",cookie.get("token"))
    }
    return config;
}, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
});

// 添加响应拦截器
http.interceptors.response.use(function (response) {
    // 响应成功:2xx 范围内的状态码都会触发该函数。
    // 对响应数据直接获取数据返回
    return response.data;
}, function (error) {
    // 超出 2xx 范围的状态码都会触发该函数。
    // 对响应错误弹出统一的错误提示
    // 弹出错误消息提示框
    ElMessage({
        showClose: true,
        message: '请求失败,Error:'+error.message,
        type: 'error',
    })
    return Promise.reject(error);
});

export default http
